package com.cs.framework.common.util;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期工具类
 * 
 * @author hedongzhou
 * 
 */
public class DateUtils {

	/**
	 * 获取当前系统日期
	 * 
	 * @return
	 */
	public static Date getCurrentDate() {
		return new Date();
	}

	/**
	 * 获取当前系统日期
	 * 
	 * @return 格式 yyyy-MM-dd
	 */
	public static String getCurrentDateStr() {
		return getDate(getCurrentDate());
	}

	/**
	 * 获取当前系统时间
	 * 
	 * @return 格式 HH:mm:ss
	 */
	public static String getCurrentTime() {
		return getDate(getCurrentDate(), "HH:mm:ss");
	}

	/**
	 * 获取当前系统完整的时间
	 * 
	 * @return 格式 yyyy-MM-dd HH:mm:ss
	 */
	public static String getCurrentFullDateStr() {
		return getDate(getCurrentDate(), "yyyy-MM-dd HH:mm:ss");
	}

	/**
	 * 获取日期
	 * 
	 * @param date
	 *            日期字符串
	 * @return 返回字符串，格式为yyyy-MM-dd
	 * @throws Exception
	 */
	public static Date getDate(String date) throws Exception {
		return getDate(date, "yyyy-MM-dd");
	}

	/**
	 * 获取日期字符串
	 * 
	 * @param date
	 *            日期
	 * @return 返回字符串，格式为yyyy-MM-dd
	 */
	public static String getDate(Date date) {
		return getDate(date, "yyyy-MM-dd");
	}

	/**
	 * 获取日期
	 * 
	 * @param date
	 *            日期字符串
	 * @param dateFormat
	 *            日期格式，如yyyy-MM-dd
	 * @return
	 * @throws Exception
	 */
	public static Date getDate(String date, String dateFormat) throws Exception {
		SimpleDateFormat format = new SimpleDateFormat(dateFormat);
		Date d = null;
		if (date != null) {
			d = format.parse(date);
		}
		return d;
	}

	/**
	 * 获取日期字符串
	 * 
	 * @param date
	 *            日期
	 * @param dateFormat
	 *            日期格式，如yyyy-MM-dd
	 * @return
	 */
	public static String getDate(Date date, String dateFormat) {
		SimpleDateFormat format = new SimpleDateFormat(dateFormat);
		String str = null;
		if (date != null) {
			str = format.format(date);
		}
		return str;
	}

}
